package mod

import (
	"database/sql"
	"time"
)

type LoginInMysql func() (*sql.DB, error)

// mysql
var (
	defaultDB *sql.DB

	// common config
	User     = "mysql"    // 用户
	Password = "pass"     // 密码
	DBName   = "workshop" // 默认数据库

	DBConfigHome = "/home/zhan/.env/store/mariadb/master/config" // mysql 客户端配置主目录
	CharacterSet = "utf8mb4_unicode_ci"                          // 默认字符集
	CommonConfig = "parseTime=true&collation=" + CharacterSet    // 普通配置

	// 证书
	CertFile     = DBConfigHome + "/tls-license/client-cert.pem"
	KeyFile      = DBConfigHome + "/tls-license/client-key.pem"
	CustomTLSKey = "docker" // 自定义的 TLS 配置

	TCPHost   = "tcp(172.18.0.2:3306)"                // tcp 连接的 mysql 主机
	TCPConfig = CommonConfig + "&tls=" + CustomTLSKey // tcp 连接的 mysql 配置

	UnixSocket = "/home/zhan/.env/store/mariadb/master/run-sock/mysqld.sock"
	UnixHost   = "unix(" + UnixSocket + ")" // unix 连接的 mysql 文件
	UnixConfig = CommonConfig               // + "&tls=" + CustomTLSKey // unixsock 连接的 mysql 配置 // unix 不存在 tls 验证

	// 部分 database 客户端配置
	MaxOpenConns                  = 30          // db.SetMaxOpenConns // 最大连接数
	MaxIdleConns                  = 30          // db.SetMaxIdleConns // 线程池容量
	ConnMaxLifetime time.Duration = 8 * 60 * 60 // db.SetConnMaxLifetime // 一次连接的生命周期, 需要小于等于数据库的设置
)
